#ifndef PREFERENCE_SET_H_INCLUDED
#define PREFERENCE_SET_H_INCLUDED

/*!
 * \file : PreferenceSet.h
 * \brief : Déclaration des méthodes sur un jeu de préférences
 * \author LY Julie
 * \version 1.0
 * \date 22 février 2013
*/

#include <vector>
#include <string>
#include "Preference.h"



/*!
 * \class PreferenceSet
 * \brief Classe sur le jeu de préférence.
*/ 
class PreferenceSet
{
	private :
		std::vector<Preference> preferences ; /*!< Vecteur de préférences*/

	public :
	
		/*!
		 * \fn PreferenceSet()
		 * \brief Constructeur par défaut d'un Jeu de Preference.
		 * \return Renvoie un Jeu de Preference par défaut.
		 */	
		PreferenceSet() ;
	

	
		/*!
		 * \fn virtual ~PreferenceSet()
		 * \brief Destructeur d'un Jeu de Preference.
		 * \return Ne renvoie rien.
		 */	
		virtual ~PreferenceSet() ;
	
		/*!
		 * \fn virtual void addPreference( Preference preference )
		 * \brief Permet d'ajouter une préférence passé en paramètre dans le Jeu de Preference.
		 * \param preference le nom d'une Preference.
		 * \return Ne renvoie rien.
		 */	
		virtual void addPreference( Preference &preference ) ;
	
		/*!
		 * \fn virtual vector<Preference> getAllPreferences() const
		 * \brief Permet d'obtenir un vecteur contenant toutes les préférences.
		 * \return Renvoie un vecteur contenant toutes les préférences du Jeu de Preference.
		 */	
		virtual std::vector<Preference> getAllPreferences() const ;
	


	
		/*!
		 * \fn virtual Preference getPreference( int position ) const
		 * \brief Permet d'obtenir une préférence placée à une certaine position.
		 * \param position la position de la préférence que l'on veut obtenir.
		 * \return Renvoie la préférence placée à une certaine position passée en paramètre.
		 */	
		virtual Preference getPreference( int position ) const ;
	
		/*!
		 * \fn virtual void show() const
		 * \brief Permet d'afficher le Jeu de Preference.
		 * \return Ne renvoie rien.
		 */	
		virtual void show() const ;
};

#endif



